#include "mainscene.h"
#include "ui_mainscene.h"
#include<QPainter>
#include<playscene.h>
#include"mypushbutton.h"
#include<QTimer>
#include<QLabel>
#include<QPropertyAnimation>
#include"playscene2.h"
#include<QMessageBox>
#include<QSoundEffect>

mainscene::mainscene(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::mainscene)
{
    ui->setupUi(this);

    initScene();

    //切换音效
    QSoundEffect * clickSound = new QSoundEffect(this);
    clickSound->setSource(QUrl::fromLocalFile(":/res/TapButtonSound.wav"));
    clickSound->setVolume(0.2f);//调节音量



    //设置帮助，背景按钮
    myPushButton*helpBtn=new myPushButton(":/res/help.png");
    helpBtn->setParent(this);
    helpBtn->move(this->width()*0.5-helpBtn->width()*0.5,this->height()*0.65);
    connect(helpBtn,&myPushButton::clicked,[=](){
            clickSound->play();

            helpBtn->zoom1();
            helpBtn->zoom2();

            QTimer::singleShot(300,this,[=](){
                QMessageBox::information(this,"帮助","游戏1：点击空格使直升机上升，躲避障碍物，帮助WalterMitty顺利飞行\n"
                "游戏2：使用键盘方向键控制MajorTom移动，在宇宙中幸存下来\n""(键盘不能长按，不然太赖皮🤢)");

            });
    });
    myPushButton*storyBtn=new myPushButton(":/res/story.png");
    storyBtn->setParent(this);
    storyBtn->move(this->width()*0.5-storyBtn->width()*0.5,this->height()*0.4);
    connect(storyBtn,&myPushButton::clicked,[=](){
            clickSound->play();

            storyBtn->zoom1();
            storyBtn->zoom2();

            QTimer::singleShot(300,this,[=](){
                QMessageBox::information(this,"背景介绍","MajorTom是在宇宙中失联的孤独太空人。\n\n"
                "灵感来源于电影白日梦想家。45分05秒吉他和弦响起，女主为沃特弹奏Space Oddity "
                "“Ground Control to Major Tom（控制中心呼叫汤姆上校）……”。"
                "沃特冲上直升机的那一瞬间，被音乐和场景打动了。（为了把它设置成背景音乐，没少查资料麻烦助教:( ）\n"
                "这世界上每个人都有自己的活法，游遍世界的摄影师尚恩，和一成不变，生活经历有点乏味无聊的沃特。"
                "我们经常在此地羡慕彼岸的人的生活，而当自己亲身去体验之后，还是会选择自己本来的样子。这是电影呈现给我的。\n"
                "加缪说过：人生的意义，在于承担人生无意义的勇气。如果你一直在找人生的意义，你永远不会生活。像沃特一样专心查看每一张底片，"
                "或是肖恩那样享受美妙的时刻，认真生活，认真做事，沉浸其中，这就是生活的意义。\n\n"
                "就是为了这点醋，才包的这顿饺子。:-)");

            });
    });


    //设置开始按钮
    myPushButton*startBtn=new myPushButton(":/res/apron.png");
    startBtn->setParent(this);
    startBtn->move(this->width()*0.5-startBtn->width()*0.5+200,this->height()*0.3);


    //直升机图标
    QLabel *Label=new QLabel;
    QPixmap temp;
    temp.load(":/res/heli4.png");
    temp=temp.scaled(temp.width()*0.5,temp.height()*0.5);
    Label->setGeometry(0,0,temp.width(),temp.height());
    Label->setPixmap(temp);
    Label->setParent(this);
    Label->move((this->width()-temp.width())*0.5+200,temp.height()+60);
    //设置击穿属性
    Label->setAttribute(Qt::WA_TransparentForMouseEvents);



    //设置弹起特效
    connect(startBtn,&myPushButton::clicked,[=](){
            clickSound->play();

            //实例化游戏场景
            playscene *play=new playscene;//点击再示例化


            //监听返回信号
            connect(play,&playscene::chooseBack,this,[=](){
                this->setGeometry(play->geometry());//场景位置一致

                Label->move(Label->x()-200,Label->y()+100);//图标返回原位置

                this->show();
                play->hide();
                //先隐藏再删除，不然删除以后还没来的及播放会出错
                QTimer::singleShot(250,this,[=](){
                    delete play;
                });
            });


            startBtn->zoom1();
            startBtn->zoom2();

            //将直升机升上去
            QPropertyAnimation *ani=new QPropertyAnimation(Label,"geometry");
            ani->setDuration(650);
            //设置开始结束位置
            ani->setStartValue(QRect(Label->x(),Label->y(),Label->width(),Label->height()));
            ani->setEndValue(QRect(Label->x()+200,Label->y()-100,Label->width(),Label->height()));
            //缓和曲线
            ani->setEasingCurve(QEasingCurve::InOutCubic);
            ani->start();

            //！延时！进入到游戏场景
            QTimer::singleShot(650,this,[=](){

                //设置play场景位置
                play->setGeometry(this->geometry());
                this->hide();
                play->show();

            });
    });


    //第二个游戏窗口开始按钮
    myPushButton*startBtn2=new myPushButton(":/res/apron.png");
    startBtn2->setParent(this);
    startBtn2->move(this->width()*0.5-startBtn->width()*0.5-200,this->height()*0.3);

    //火箭图标
    QLabel *Label2=new QLabel;
    QPixmap temp2;
    temp2.load(":/res/rocket.png");
    temp2=temp2.scaled(temp2.width()*0.3,temp2.height()*0.3);
    Label2->setGeometry(0,0,temp2.width(),temp2.height());
    Label2->setPixmap(temp2);
    Label2->setParent(this);
    Label2->move((this->width()-temp2.width())*0.5-200,temp2.height()+120);
    //设置击穿属性
    Label2->setAttribute(Qt::WA_TransparentForMouseEvents);


    //设置弹起特效
    connect(startBtn2,&myPushButton::clicked,[=](){
            clickSound->play();

            //实例化游戏场景
            playscene2 *play2=new playscene2;//点击再示例化

            //监听返回信号
            connect(play2,&playscene2::chooseBack,this,[=](){
                this->setGeometry(play2->geometry());//场景位置一致

                Label2->move(Label2->x(),Label2->y()+250);//图标返回原位置

                this->show();
                play2->hide();
                //先隐藏再删除，不然删除以后还没来的及播放会出错
                QTimer::singleShot(250,this,[=](){
                    delete play2;
                });
            });

            startBtn2->zoom1();
            startBtn2->zoom2();

            //将直升机升上去
            QPropertyAnimation *ani=new QPropertyAnimation(Label2,"geometry");
            ani->setDuration(650);
            //设置开始结束位置
            ani->setStartValue(QRect(Label2->x(),Label2->y(),Label2->width(),Label2->height()));
            ani->setEndValue(QRect(Label2->x(),Label2->y()-250,Label2->width(),Label2->height()));
            //缓和曲线
            ani->setEasingCurve(QEasingCurve::InOutCubic);
            ani->start();

            //！延时！进入到游戏场景
            QTimer::singleShot(650,this,[=](){

                //设置play场景位置
//                play2->setGeometry(this->geometry());
                this->hide();
                play2->show();
            });
    });

}

mainscene::~mainscene()
{
    delete ui;
}

//初始化场景
void mainscene::initScene()
{
    setFixedSize(700,350);
    setWindowTitle("GroundControl");
    setWindowIcon(QIcon(":/res/tower.png"));

}

void mainscene::paintEvent(QPaintEvent *)
{
    //画背景
    QPainter painter(this);
    QPixmap pix;
    pix.load(":/res/back9.jpg");
    painter.drawPixmap(0,0,pix);

//    painter.setPen(Qt::black);
//    painter.setBrush(Qt::white);
//    painter.drawRect(0,0,700,350);

    //载图标
    pix.load(":/res/nk.gif");
//    pix=pix.scaled(pix.width()*1.2,pix.height()*1.2);
    painter.drawPixmap(this->width()*0.5-pix.width()*0.5,20,pix);

//    pix.load(":/res/boy.png");
//    //缩放
//    pix=pix.scaled(pix.width()*0.5,pix.height()*0.5);
//    painter.drawPixmap(575,20,pix);

//    pix.load(":/res/girl.png");
//    pix=pix.scaled(pix.width()*0.5,pix.height()*0.5);
//    painter.drawPixmap(25,20,pix);

}

